注册

QT5.8.0实现ARM交叉编译
首页 > IT计算机 > QT学习之路    作者:RainFly   2017年12月7日 13:01 星期四   热度:11606°   字号:   评论:0    
时间:2017-12-7 13:01   热度:11606°  评论:0 条 

需求:编译安装QT 5.8.0 ARM +linux 版本

环境:Ubuntu 14.04 32bit

个人需要编译安装了 i386-linux-Qt5.8.0,

第一步:

下载文件

Qt官网下载:http://download.qt.io/archive/qt/


QQ截图20171207130412.jpg


 qt-opensource-linux-x64-5.8.0.run 这种类型是编译好的可以运行的x64位的i386的版本。 

我们需要进入 single/  内qt-everywhere-opensource-src-5.8.0.tar.xz  直接下载源码

我之前已经安装好了交叉编译工具


第二步

解压文件

找个英文目录,把qt-everywhere-opensource-src-5.8.0.tar.gz放进去。
用终端解压:tar -zxvf qt-everywhere-opensource-src-5.8.0.tar.gz
最好别右击“提取到此处”,这个解压好像和命令解压不同。

第三步:
修改编译配置文件:
vim qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
(注意我的改动)

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS += -O2 -march=armv7-a
QMAKE_CXXFLAGS += -O2 -march=armv7-a

# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabi-gcc
QMAKE_CXX = arm-linux-gnueabi-g++
QMAKE_LINK = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
QMAKE_NM = arm-linux-gnueabi-nm -P
QMAKE_STRIP = arm-linux-gnueabi-strip
load(qt_config)


注意:
这里指定了编译arm版qt所使用的编译器,与后期QtCreator项目的编译器是一样的。
如果你是用的是arm-none-linux-gnueabi-gcc,那么每一项都需要修改为arm-none-linux-gnueabi-*。

#这里提前解释一下,第三步中已经指定好了编译器版本,所以第四步不需要指定了。
#第四步中的-xplatform linux-arm-gnueabi-g++是对应qmake.conf所在的文件夹,代表了编译的Qt库的版本。

第四步:
配置编译参数,用./configre -help 可以查看参数。
我的配置是(去除掉了一些用不到的选项):
./configure -release -opensource -confirm-license -xplatform linux-arm-gnueabi-g++ -prefix /usr/local/qt5.8-nomake examples -no-opengl -no-iconv -silent -qpa linuxfb -no-gtk -qt-libjpeg -qt-libpng

注意:
1、-xplatform linux-arm-gnueabi-g++ ,指定了编译Arm版的QT库;
2、-prefix后面的配置为qt库需要安装的位置,这个需要根据你的安装位置自己指定。(如果不指定默认的安装位置是 /usr/local/Qtxxx)

第五步:
如果上面配置没有问题,接下来make:
$make
或者
$make -j2 /*CPU 几个核可以使用“-j几”,核多编的快*/

第六步:
安装:$sudo make install
在这里加sudo是因为,安装时会将库文件复制到上面第四步配置的安装目录( /usr/local/qt5.8)。
usr目录是需要root权限的。
   
好了,这是编译Qt5.8.0的过程。


编译平台插件:
由于Qt5以后,删除了嵌入式的QWS(Qt windows system-Qt窗体系统)换成QPA(Qt Platform Abstration -Qt平台抽象),平台插件在qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/下面。
有各种平台的插件,基于frambuffer的插件是lunuxfb这个文件夹下,其他的还有android、ios、winrt、windows等等,需要什么平台的编译就是了。












  您阅读这篇文章共花了:  
捐赠支持:如果觉得这篇文章对您有帮助,请 "扫一扫"鼓励作者!
二维码加载中...
本文作者:RainFly      文章标题: QT5.8.0实现ARM交叉编译
本文地址:http://www.rainfly.cn/?post=288
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

赶紧抢沙发哟!

QQ游客评论

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015 雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 站点地图   
页面加载耗时:0.029秒 数据库查询次数:11次
背景设置